package com.settlement.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.settlement.system.common.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
* <p>
* 记账项目配置
* </p>
*
* @author huangrensen
* @since 2023-09-08
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysAccountingProject extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
    * 对账系统平台编码
    */
    private String billSystemPlatformCode;

    /**
    * 对账系统平台名称
    */
    private String billSystemPlatformName;

    /**
    * 电商平台账单项目
    */
    private String accountingProjectName;

    /**
    * 一级科目编码
    */
    private String firstCode;

    /**
    * 一级科目名称
    */
    private String firstName;

    /**
    * 末级科目编码
    */
    private String lastCode;

    /**
    * 末级科目名称
    */
    private String lastName;

    /**
    * 记账项目
    */
    private String accountingProject;

    /**
     * 辅助项配置 JSON
     */
    private String accessory;

    /**
     * 对方一级科目编码
     */
    private String otherFirstCode;

    /**
     * 对方一级科目名称
     */
    private String otherFirstName;

    /**
     * 对方末级科目编码
     */
    private String otherLastCode;

    /**
     * 对方末级科目名称
     */
    private String otherLastName;

    /**
     * 对方记账项目
     */
    private String otherAccountingProject;

    /**
     * 对方辅助项配置 JSON
     */
    private String otherAccessory;

    /**
    * 是否分摊
    */
    private String apportionment;

    /**
    * 票前票后
    */
    private String invoice;

    /**
    * 稽核标识
    */
    private String audit;

    /**
    * 是否参与记账
    */
    private String accounting;

    /**
    * 供应商名称
    */
    private String carrier;

    /**
    * 借贷方向
    */
    private String borrowing;
    /**
    * 对方借贷方向
    */
    private String otherBorrowing;

    /**
    * 税率
    */
    private String rate;
    /**
    * 来源单据
    */
    private String orderType;
    /**
    * 收支方向
    */
    private String payType;

    /**
     * 资金项目计算方向
     */
    private String fundingDirection;

    /**
     * 资金项目类别配置
     */
    private String fundingProjectsStr;

    public static List<String> excelHeader() {
        List<String> headList = new ArrayList<>();
        headList.add("业务平台");
        headList.add("来源单据");
        headList.add("电商平台账单项目");
        headList.add("收支方向");
        headList.add("末级科目编码");
        headList.add("对方末级科目编码");
        headList.add("是否分摊");
        headList.add("票前票后");
        headList.add("稽核标识");
        headList.add("是否参与记账");
        headList.add("供应商名称");
        headList.add("借贷方向");
        headList.add("对方借贷方向");
        headList.add("税率");
        // headList.add("资金项目计算方向");
        return headList;
    }
}
